<template>
<el-card shadow="never" class="aui-card--fill">
    <div class="mod-sys__dept">
        <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
            <el-form-item>
                <el-input v-model="dataForm.title" placeholder="公告内容" clearable></el-input>
            </el-form-item>
             <!-- <el-form-item>
                <el-select v-model="dataForm.type" placeholder="类型" clearable>
                    <el-option :value="0" label="航运通知">
                    </el-option>
                    <el-option :value="1" label="其他信息">
                    </el-option>
                </el-select>
            </el-form-item>
            <el-form-item>
                <el-date-picker v-model="value1" type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd HH:mm:ss">
                </el-date-picker>
            </el-form-item> -->

            <el-form-item>
                <el-button @click="getDataList()">{{ $t("query") }}</el-button>
            </el-form-item>
            <el-form-item>
                <el-button type="primary" v-if="$hasPermission('scenic:commnoticeo:save')"  @click="addOrUpdateHandle()">{{ $t("add") }}</el-button>
            </el-form-item>
             <el-form-item>
                <el-button type="warning" v-if="$hasPermission('scenic:commnoticeo:page')"  @click="lookShow=true">草稿箱</el-button>
            </el-form-item>
        </el-form>
        <el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" @sort-change="dataListSortChangeHandle" style="width: 100%">
            <el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
            <el-table-column prop="title" label="公告内容" align="center" :show-overflow-tooltip="true" min-width="120"></el-table-column>
            <!-- <el-table-column prop="type" label="类型" header-align="center" align="center" :show-overflow-tooltip="true" min-width="120">
                <template slot-scope="scope">
                    {{scope.row.type==0?'航运通知':'其他信息'}}
                </template>
            </el-table-column> -->
            <el-table-column prop="status" label="状态" header-align="center" align="center" min-width="140px">
                <template slot-scope="scope">
                    <el-switch @change="(val)=>changeStatus(scope.row.id,val)" :value="scope.row.status" :active-value="0" :inactive-value="1" active-color="#ddd" inactive-color="#13ce66" active-text="撤回" inactive-text="启用">
                    </el-switch>
                </template>
            </el-table-column>
            <el-table-column prop="releaseTime" label="创建时间" header-align="center" align="center"></el-table-column>
            <el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
                <template slot-scope="scope">
                    <el-button type="text" v-if="$hasPermission('scenic:commnoticeo:update')" size="small" @click="addOrUpdateHandle(scope.row.id)">编辑</el-button>
                    <!-- <el-button type="text" size="small" @click="lookDetail(scope.row.id)">详情</el-button> -->
                    <el-button type="text" size="small" v-if="$hasPermission('scenic:commnoticeo:delete')" @click="deleteHandle(scope.row.id)">{{ $t("delete") }}</el-button>
                </template>
            </el-table-column>
        </el-table>
        <el-pagination :current-page="page" :page-sizes="[10, 20, 50, 100]" :page-size="limit" :total="total" layout="total, sizes, prev, pager, next, jumper" @size-change="pageSizeChangeHandle" @current-change="pageCurrentChangeHandle">
        </el-pagination>
        <!-- 弹窗, 新增 / 修改 -->
        <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
        <detail ref="lookDetail" v-if="lookDetailVisible">
        </detail>
         <!-- 报名记录 -->
        <el-drawer title="草稿箱" :visible.sync="lookShow" size='50%'>
            <list ref="lookRecord"></list>
        </el-drawer>
    </div>
</el-card>
</template>

<script>
import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from "./notice-add-or-update";
import detail from "./detail";
import list from './index2';
export default {
    mixins: [mixinViewModule],
    data() {
        return {
            mixinViewModuleOptions: {
                getDataListURL: "/scenic/commnoticeo/page",
                deleteURL: "/scenic/commnoticeo",
                getDataListIsPage: true,
                deleteIsBatch: true,
                exportURL: "/scenic/commnoticeo/export",
            },
            value1: [],
            dataForm: {
                title: '',
                startDate: '',
                endDate: '',
                type:'',
                isDraft:0
            },
            lookShow: false,
        };
    },
       watch: {
        value1(newval, oldval) {
            if (newval) {
                if (newval != oldval) {
                    this.dataForm.startDate = newval[0];
                    this.dataForm.endDate = newval[1];
                }
            } else {
                this.dataForm.startDate = '';
                this.dataForm.endDate = '';
            }
        }
    },
    components: {
        list,
        AddOrUpdate,
        detail
    },
    methods:{
         changeStatus(id, status) {
            this.$confirm(`确定${status?'启用':'撤回'}？`, this.$t("prompt.title"), {
                    confirmButtonText: this.$t("confirm"),
                    cancelButtonText: this.$t("cancel"),
                    type: "warning",
                })
                .then(() => {
                    this.$http
                        .put('/scenic/commnoticeo', {
                            id: id,
                            status: status,
                        })
                        .then((res) => {
                            if (res.data.code !== 0) {
                                return this.$message.error(res.data.msg);
                            }
                            this.$message({
                                message: this.$t("prompt.success"),
                                type: "success",
                                duration: 500,
                                onClose: () => {
                                    this.getDataList();
                                },
                            });
                        })
                }).catch(() => {
                    console.log(1)
                });
        }
    }
};
</script>
